home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 24 / AMIGAplus Sonderheft 24 (2000)(Falke)(DE)[!].iso / PublicDomain / Anwendungen / MT-RechnungIII / Rexx / WWZahlschein.outrexx < prev    next >
Text File  |  1998-10-30  |  4KB  |  172 lines

  1. /*
  2. ** Druck-, Vorschau, Sichern des Zahlscheins über die Rechnungssumme mit Hilfe von WordWorth
  3. ** $VER: WWZahlschein.outrexx V1.02 (30.10.98)
  4. */
  5.  
  6.  
  7. PARSE ARG ARexxPort;
  8.  
  9. ADDRESS VALUE ARexxPort;
  10. OPTIONS RESULTS;
  11.  
  12. WWVorlage    = "WWDokumente/Überweisung.ww";
  13. WWDokument    = "t:Überweisung.ww";
  14. WWPort        = "WORDWORTH."
  15.  
  16. LF                    = '0a'x;                            /* Zeilenvorschub                */
  17.  
  18. Gefunden = 0;
  19. DO i = 1 TO 20 WHILE(Gefunden = 0)
  20.     IF show(ports, (WWPort || i)) THEN
  21.         DO;
  22.             Gefunden = 1;
  23.             WWPort = WWPort || i;
  24.         END;
  25. END;
  26.  
  27. IF Gefunden = 0 THEN
  28.     DO;
  29.         ES_TITLE                = "Warnung";
  30.         ES_TEXTFORMAT        = "WordWorth ist nicht aktiv, bitte starten sie dieses" || LF || "und versuchen Sie es erneut";
  31.         ES_GADGETFORMAT    = "Abbrechen";
  32.         EASY_REQUEST;
  33.         EXIT;
  34.     END;
  35.  
  36. /* Original WW-Dokument nach t: kopieren, um ein versehentliches überschreiben */
  37. /* dieser Vorlage zu verhindern */
  38. GET_REXXPATH;
  39. WWVorlage        = MTR_RESULT || WWVorlage;
  40. ADDRESS COMMAND "copy" WWVorlage WWDokument;
  41.  
  42. /* Oberfläche sperren */
  43. LOCKGUI;
  44.  
  45. /* Art ermitteln: 0 = Drucken, 1 = Vorschau, 2 = Speichern */
  46. PRINTSTATE;
  47. Druckart = MTR_RESULT;
  48.  
  49. Ende_Kennzeichen = 'N';
  50.  
  51. /* Suchen der zu druckenden Daten */
  52. GET_PREFS;
  53. PRINTFIND;
  54.  
  55. /* Neues Dokument öffnen */
  56. ADDRESS VALUE WWPort;
  57. NEW;
  58. WWPort = RESULT;
  59.  
  60. ADDRESS VALUE ARexxPort;
  61.  
  62. DO WHILE( MTR_RESULT > 0 & Ende_Kennzeichen = 'N');
  63.     CALL DatenAufbereiten;
  64.     SELECT;
  65.         WHEN Druckart = 0 THEN    /* Drucken    */
  66.             DO;
  67.                 ADDRESS VALUE WWPort;
  68.                 PRINT;
  69.                 ADDRESS VALUE ARexxPort;
  70.                 MTSCREENTOFRONT;
  71.             END;
  72.         WHEN Druckart = 1 THEN    /* Vorschau    */
  73.             ADDRESS VALUE ARexxPort;
  74.         WHEN Druckart = 2 THEN    /* Sichern    */
  75.             DO;
  76.                 ADDRESS VALUE WWPort;
  77.                 SAVEAS;
  78.                 ADDRESS VALUE ARexxPort;
  79.                 MTSCREENTOFRONT;
  80.             END;
  81.         OTHERWISE
  82.             DO;
  83.                 ADDRESS VALUE ARexxPort;
  84.                 ES_TITLE                = "Warnung";
  85.                 ES_TEXTFORMAT        = "Druckart wird nicht unterstützt!";
  86.                 ES_GADGETFORMAT    = "Ok";
  87.                 EASY_REQUEST;
  88.                 Ende_Kennzeichen    = 'J';
  89.             END;
  90.     END;
  91.  
  92.     PRINTFIND;
  93. END;
  94.  
  95. /* WordWorth-Datei aus t: wieder entfernen */
  96. ADDRESS COMMAND "delete" WWDokument;
  97.  
  98. /* Oberfläche wieder entsperren */
  99. ADDRESS VALUE ARexxPort;
  100. FREEGUI;
  101.  
  102. EXIT;
  103.  
  104. DatenAufbereiten:
  105.  
  106.     IF PREFS.NUMBER_DIGITS > 0 THEN
  107.         ZW_Rechnung = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || MTR_RESULT), PREFS.NUMBER_DIGITS );
  108.     ELSE
  109.         ZW_Rechnung = MTR_RESULT;
  110.  
  111.     /* Betrag korrekt formatieren, Währungssymbol separieren */
  112.     i = OB.CURRENCY_USED;
  113.     FORMAT_MONEY2 OB.TOTAL_M_ALL_CH.i;
  114.     j = index( MTR_RESULT, PREFS.CURRENCYSYMBOL );
  115.     l1 = j - 1;
  116.     l2 = LENGTH( MTR_RESULT ) - l1 - LENGTH( PREFS.CURRENCYSYMBOL );
  117.     IF i < 2 THEN
  118.         FORMAT_MONEY1 OB.TOTAL_M_ALL_CH.i;
  119.     ZW_Betrag    = LEFT(LEFT(MTR_RESULT, l1) || RIGHT(MTR_RESULT, l2), 12);
  120.     ZW_WSymbol    = LEFT(SUBSTR(MTR_RESULT, j, (LENGTH( MTR_RESULT ) - l1 - l2) ), 3);
  121.  
  122.     ADDRESS VALUE WWPort;
  123.  
  124.     OPEN FILENAME WWDokument FORCE;
  125.  
  126.     POSITION SOF;
  127.     IF OB.OFFICE.ADDRESS.COMPANY1 > "" THEN
  128.         ZW_Adresse = LEFT( (OB.OFFICE.ADDRESS.COMPANY1 || ", " || OB.OFFICE.ADDRESS.CITY), 27);
  129.     ELSE
  130.         ZW_Adresse = LEFT( (OB.OFFICE.ADDRESS.PRENAME OB.OFFICE.ADDRESS.SURNAME || ", " || OB.OFFICE.ADDRESS.CITY), 27);
  131.     FINDCHANGE FIND "<RECEIVER.SUR_PRENAME>" CHANGE ZW_Adresse;
  132.  
  133.     POSITION SOF;
  134.     FINDCHANGE FIND "<R.ACCOUNT>" CHANGE LEFT( OB.OFFICE.ADDRESS.ACCOUNT, 10 );
  135.  
  136.     POSITION SOF;
  137.     FINDCHANGE FIND "<R.BCM>" CHANGE LEFT( OB.OFFICE.ADDRESS.BANK_CODE_NUMBER,8);
  138.  
  139.     POSITION SOF;
  140.     FINDCHANGE FIND "<RECEIVER.BANK_NAME>" CHANGE LEFT( OB.OFFICE.ADDRESS.BANK_NAME, 27 );
  141.  
  142.     POSITION SOF;
  143.     FINDCHANGE FIND "<W>" CHANGE ZW_WSymbol;
  144.  
  145.     POSITION SOF;
  146.     FINDCHANGE FIND "<B.TOTAL>" CHANGE ZW_Betrag;
  147.     FINDCHANGE FIND "<B.TOTAL>" CHANGE ZW_Betrag;
  148.  
  149.     POSITION SOF;
  150.     FINDCHANGE FIND "<B.BILL_NUMBER>" CHANGE ZW_Rechnung;
  151.  
  152.     POSITION SOF;
  153.     IF PREFS.CLIENT_CODE = 1 THEN
  154.         ZW_Kunde    = OB.INVOICEE.CUSTOMER.CLIENT_CODE;
  155.     ELSE IF PREFS.NUMBER_DIGITS > 0 THEN
  156.         ZW_Kunde = RIGHT( (Copies("0",PREFS.NUMBER_DIGITS) || OB.INVOICEE_NUMBER), PREFS.NUMBER_DIGITS );
  157.     ELSE
  158.         ZW_Kunde = OB.INVOICEE_NUMBER;
  159.     FINDCHANGE FIND "<REC.NUMBER>" CHANGE ZW_Kunde;
  160.  
  161.     POSITION SOF;
  162.     IF OB.INVOICEE.CUSTOMER.ADDRESS.COMPANY1 > "" THEN
  163.         ZW_Adresse = LEFT( (OB.INVOICEE.CUSTOMER.ADDRESS.COMPANY1 || ", " || OB.INVOICEE.CUSTOMER.ADDRESS.CITY), 27);
  164.     ELSE
  165.         ZW_Adresse = LEFT( (OB.INVOICEE.CUSTOMER.ADDRESS.PRENAME OB.INVOICEE.CUSTOMER.ADDRESS.SURNAME || ", " || OB.INVOICEE.CUSTOMER.ADDRESS.CITY), 27);
  166.     FINDCHANGE FIND "<SENDER.SUR_PRENAME>" CHANGE ZW_Adresse;
  167.  
  168.     POSITION SOF;
  169.     FINDCHANGE FIND "<S.ACCOUNT>" CHANGE "";
  170. RETURN;
  171.  
  172.